#!/usr/bin/env python3
# -*- encoding: utf-8 -*-
"""
@UserFor     :   ***  通用工具类  ***
@File        :   general_tool.py    
@Email       :   18574945291@163.com
@Modify Time :   2020/12/14 19:31
@Author      :   code_wizard (wll) 
"""
import datetime
import hashlib
import unicodedata
import jieba
from spider_qcc.tools import logger


class GeneralTool(object):
    """通用工具类"""

    def __init__(self):
        self._logger = logger.Logger('../log/{date_str}.log'.format(date_str=datetime.date.today()), "general")

    def md5(self, plaintext):
        """ 对plaintext（明文） 进行md5哈希运算 并返回对应哈希值 """
        if plaintext is None:
            self._logger.add_log("error", "字符串为空 无法md5")
            return None
        m = hashlib.md5()
        m.update(plaintext.encode("utf8"))
        return m.hexdigest()

    @staticmethod
    def is_numbers(string):
        """ 判断当前字符串是否是纯数字 """
        try:
            float(string)
            return True
        except ValueError:
            pass
        try:
            unicodedata.numeric(string)
            return True
        except (TypeError, ValueError):
            return False

    def split_keywords(self, keywords):
        """ 对输入的公司名抽取关键字处理  比如 深圳市信息科技有限公司 ==>> {“客一客”，“客一客信息科技”} 过滤敏感词汇 """
        temp_list = list()
        if keywords is None:
            self._logger.add_log("info", "输入关键字为空 无法切割")
            return None
        # 校验全部为数字
        if self.is_numbers(keywords):
            self._logger.add_log("error", "输入字符串格式违法！ ： 全部为数字")
            return None
        for index in jieba.cut(keywords, cut_all=False):
            if "市" in index or "公司" in index or "有限" in index or "科技" in index or "信息" in index or "数字" in index:
                continue
            temp_list.append(index)
        return "".join(temp_list)


if __name__ == '__main__':
    gen = GeneralTool()
    print(gen.split_keywords("深圳市客一客信息科技装饰有限公司"))
